package com.platform.dto;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.sql.Insert;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

import static com.platform.comm.util.DateTimeUtil.STD_LONG_TIME_PATTERN;

/**
 * Description: InterfaceDto is a Request entity object for Adding Or Modification.
 *
 * @author Coder
 */
@Setter
@Getter
public class InterfaceDto {

    /**
     * id
     */
    @NotNull(message = "id不能为空.", groups = Insert.class)
    private String id;

    /**
     * 接口名称
     */
    private String interfaceName;

    /**
     * 接口地址
     */
    private String interfaceUrl;

    /**
     * 接口描述
     */
    private String interfaceDesc;

    /**
     * 接口类型
     */
    private String typeId;

    /**
     * 服务分类名称
     */
    private String typeName;

    /**
     * 状态标志
     */
    private String delflag;

    /**
     * 接口状态
     */
    private String status;

    /**
     * 查看接口详细信息url
     */
    private String detailUrl;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = STD_LONG_TIME_PATTERN)
    private LocalDateTime createDate;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = STD_LONG_TIME_PATTERN)
    private LocalDateTime updateDate;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 请求类型
     */
    private String reqType;

    /**
     * 请求参数
     */
    private List<Map<String,String>> reqParam;

    /**
     * 请求参数类型
     */
    private String reqParamType;

    /**
     * 响应参数
     */
    private List<Map<String,String>> resParam;

    /**
     * 响应参数类型
     */
    private String resParamType;

    /**
     * 响应示例
     */
    private String resExample;

    /**
     * 请求示例
     */
    private String reqExample;

    /**
     * 版本号
     */
    private String version;

    /**
     * 是否被克隆 Y-是 N-否
     */
    private String isClone;

    /**
     * 是否被使用
     */
    private String isUsed;

}
